home *** CD-ROM | disk | FTP | other *** search
/ Revista CD Expert 8 / Revista CD Expert nº 08 CD1.iso / Utilitarios / Programacao / Pacific C for DOS / EXAMPLES / MOUSE.H < prev    next >
C/C++ Source or Header  |  1995-03-08  |  3KB  |  118 lines

  1. /*
  2.  *    Mouse library entry points.
  3.  *    Colin Weaver, HI-TECH Software        October 1990
  4.  */
  5.  
  6. #ifndef    _MOUSE_
  7.  
  8. #include    <stdlib.h>
  9.  
  10. #define    _MOUSE_    1
  11.  
  12. /*
  13.  *    Button status bits in button status word returned by readmouse
  14.  */
  15.  
  16. #define    LEFT_FLAG    0x0001
  17. #define    RIGHT_FLAG    0x0002
  18. #define    MIDDLE_FLAG    0x0004
  19.  
  20. #define    LEFT_BUTTON    0
  21. #define    RIGHT_BUTTON    1
  22. #define    MIDDLE_BUTTON    2
  23.  
  24. /*
  25.  *    Cursor types (text mode)
  26.  */
  27.  
  28. #define    SOFTWARE_CURSOR    0
  29. #define    HARDWARE_CURSOR    1
  30.  
  31. /*
  32.  *    Event handler mask bits
  33.  */
  34.  
  35. #define    CURSOR_MOVED    0x0001
  36. #define    LEFT_PRESS    0x0002
  37. #define    LEFT_RELEASE    0x0004
  38. #define    RIGHT_PRESS    0x0008
  39. #define    RIGHT_RELEASE    0x0010
  40. #define    MIDDLE_PRESS    0x0020
  41. #define    MIDDLE_RELEASE    0x0040
  42.  
  43. #define    BUTTON_PRESS    (LEFT_PRESS | MIDDLE_PRESS | RIGHT_PRESS)
  44. #define    BUTTON_RELEASE    (LEFT_RELEASE | MIDDLE_RELEASE | RIGHT_RELEASE)
  45. #define    BUTTON_EVENT    (BUTTON_PRESS | BUTTON_RELEASE)
  46.  
  47. struct mousedata {
  48.     int        y;        /* vertical position */
  49.     int        x;        /* horizontal position */
  50.     int        buttons;    /* button status bits */
  51.     int        count;        /* button press count */
  52.     int        event;        /* event bits */
  53.     int        keymods;    /* keyboard modifier bits */
  54.     unsigned long    timer;        /* timer value */
  55. };
  56.  
  57. #pragma    pack(2)
  58. struct graphic_cursor {
  59.     unsigned short    screenmask[16];
  60.     unsigned short    cursormask[16];
  61.     unsigned short    hotspot_x;
  62.     unsigned short    hotspot_y;
  63. };
  64. #pragma    pack(4)
  65.  
  66. struct boundsrect {
  67.     int    top;
  68.     int    left;
  69.     int    bottom;
  70.     int    right;
  71. };
  72.  
  73. struct sensitivity {
  74.     int    horizontal;    /* horizontal step/pixel ratio */
  75.     int    vertical;    /* vertical step/pixel ratio */
  76.     int    threshold;    /* ballistic threshold */
  77. };
  78.  
  79. struct mouseinfo {
  80.     unsigned char    minorver;
  81.     unsigned char    majorver;
  82.     unsigned char    irqnumber;
  83.     unsigned char    mousetype;
  84. };
  85.  
  86. extern int        initmouse(void);
  87. extern void        shutdownmouse(void);
  88. extern void        showcursor(void);
  89. extern void        hidecursor(void);
  90. extern void        readmouse(struct mousedata *);
  91. extern void        setmousepos(int, int);
  92. extern void        getpressinfo(int, struct mousedata *);
  93. extern void        getreleaseinfo(int, struct mousedata *);
  94. extern void        sethlimits(int, int);
  95. extern void        setvlimits(int, int);
  96. extern void        setgrcursor(struct graphic_cursor *);
  97. extern void        setcursor(int, unsigned int, unsigned int, unsigned int, unsigned int);
  98. extern void        readcounters(struct mousedata *);
  99. extern void        eventhandler(int, void (*)(struct mousedata *));
  100. extern void        setpixelratio(int, int);
  101. extern void        conditionalhide(struct boundsrect *);
  102. extern void        speedthreshold(int);
  103. extern void        setsensitivity(struct sensitivity *);
  104. extern void        getsensitivity(struct sensitivity *);
  105. extern size_t        getstoragesize(void);
  106. extern int        savemouse(void);
  107. extern int        restoremouse(void);
  108. extern void        getmouseinfo(struct mouseinfo *);
  109. extern void        savestate(void *);
  110. extern void        restorestate(void *);
  111. extern unsigned int    keymodbits(void);
  112.  
  113. #endif
  114.  
  115. /*
  116.  *    End of file: MOUSE.H
  117.  */
  118.